import java.util.ArrayList;
import java.util.List;

class YHSolution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret = new ArrayList<>();
        // 1.处理第一行
        List<Integer> list = new ArrayList<>();
        list.add(1);
        ret.add(list);
        // 2.从第二行开始,计算每个list中的数据
        for(int i = 1; i < numRows; i++){
            // 3.先准备当前数据
            List<Integer> curRow = new ArrayList<>();
            // 4.当前行的第一个数据
            curRow.add(1);
            List<Integer> preRow = ret.get(i-1);
            // 5.准备当前的中间数据
            for(int j = 1; j<i;j++){
                int val = preRow.get(j)+preRow.get(j-1);
                curRow.add(val);

            }
            // 6.当前行最后一个数据
            curRow.add(1);
            // 7.放到二维数组
            ret.add(curRow);
        }
        // 8.返回
        return ret;


    }
}
public class YangHui {
    public static void main(String[] args) {
        YHSolution solution = new YHSolution();
        List<List<Integer>> list = solution.generate(3);
        System.out.println(list);

    }
}
